package labs.third;
import static labs.utilities.PrintUtilities.printDebug;
import java.util.*;
import java.io.*;
/* semantic value of token returned by scanner */
public class Lexer
{
	public static void parse(BufferedReader reader, ArrayList<String> tokens)
			throws Exception {
		Yylex yy = new Yylex(reader);
		yy.initializeTable();
		while (true) {
			String x = yy.next_token();
			if (x == null) {
				break;
			}
			tokens.add(x);
		}
	}
}


class Yylex {
	private final int YY_BUFFER_SIZE = 512;
	private final int YY_F = -1;
	private final int YY_NO_STATE = -1;
	private final int YY_NOT_ACCEPT = 0;
	private final int YY_START = 1;
	private final int YY_END = 2;
	private final int YY_NO_ANCHOR = 4;
	private final int YY_BOL = 128;
	private final int YY_EOF = 129;

  public String sourceFilename;
  private StringBuffer string = new StringBuffer();
  private char character = '\0';
  private HashMap<String, String> table;
  private int nextState;
  private int numberofCurlyBrackets;
  private int numberofParanthesis;
  private int numberofSquareBrackets;
  public void display() {
  	String state = "";
  	switch(yy_lexical_state) {
  		case STRING: state = "String"; break;
  		case YYINITIAL: state = "YYInitial"; break;
  		case CHAR: state = "Char"; break;
  		default: state = "none";
  	}
  	printDebug("state: %s, line: %s, char: %s, current char: %s", state, yyline, yychar, yytext());
  }
  public String convertToScientific(String str) {
  	StringBuffer temp = new StringBuffer(str);
  	if (!str.contains(".")) {
  		if (str.length() > 7) {
	  		int eValue = temp.length() - 1;
	  		temp.insert(1, ".");
	  		for(int i = eValue + 1; i >= 0; i--) {
	  			if(temp.charAt(i) == '0') {
	  				temp.deleteCharAt(i);
	  			} else {
	  				break;
	  			}
		  	}
		  	temp.append("E" + eValue);
	  	} else {
	  		temp.append(".0");
	  	}
  	}
  	return temp.toString();
  }
  public void initializeTable() {
  	table = new HashMap<String, String>();
  	table.put(".", "DO");
  	table.put("{","LC");
  	table.put("}","RC");
  	table.put("(", "LB");
  	table.put(")", "RB");
  	table.put("=", "AO");
  	table.put(";", "SM");
  	table.put("-", "MO");
  	table.put("+", "PO");
  	table.put("<", "LT");
  	table.put(">", "GT");
  	table.put("+", "PO");
  	table.put("*", "MB");
  	table.put("/", "DB");
  	table.put(",", "FA");
  	table.put("[]", "AA");
  	table.put("[", "LS");
  	table.put("]", "RS");
  	table.put("+=", "RS");
  	table.put("-=", "RS");
  	table.put("*=", "RS");
  	table.put("/*", "RS");
  	table.put("<=", "LE");
  	table.put(">=", "GE");
  	table.put("==", "EQ");
  	table.put("!", "LN");
  	table.put("++", "PP");
  	table.put("--", "MM");
  	table.put("!=", "NE");
  	table.put("&", "LA");
  	table.put("|", "LO");
  	table.put("^", "LX");
  }
  private String getSym(String str) {
  	return String.format("%s\t%s", table.get(str), str);
  }
  private void printErrorMessage(String msg) {
    System.out.println(msg);
  }
  private boolean isValidBracket() {
    char currentBracket = yytext().charAt(0);
    if(currentBracket == '(') {
      numberofParanthesis++;
    } else if(currentBracket == '[') {
      numberofSquareBrackets ++;
    } else if(currentBracket == '{') {
      numberofCurlyBrackets++;
    } else if(currentBracket == ')') {
      numberofParanthesis--;
    } else if(currentBracket == ']') {
      numberofSquareBrackets--;
    } else if(currentBracket == '}') {
      numberofCurlyBrackets--;
    }
    return numberofCurlyBrackets < 0 || numberofParanthesis < 0 || numberofSquareBrackets < 0;
  }
	private java.io.BufferedReader yy_reader;
	private int yy_buffer_index;
	private int yy_buffer_read;
	private int yy_buffer_start;
	private int yy_buffer_end;
	private char yy_buffer[];
	private int yychar;
	private int yyline;
	private boolean yy_at_bol;
	private int yy_lexical_state;

	Yylex (java.io.Reader reader) {
		this ();
		if (null == reader) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(reader);
	}

	Yylex (java.io.InputStream instream) {
		this ();
		if (null == instream) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
	}

	private Yylex () {
		yy_buffer = new char[YY_BUFFER_SIZE];
		yy_buffer_read = 0;
		yy_buffer_index = 0;
		yy_buffer_start = 0;
		yy_buffer_end = 0;
		yychar = 0;
		yyline = 0;
		yy_at_bol = true;
		yy_lexical_state = YYINITIAL;
	}

	private boolean yy_eof_done = false;
	private final int C_COMMENT = 6;
	private final int STRING = 2;
	private final int END_CHAR = 5;
	private final int YYINITIAL = 0;
	private final int COMMENTS = 1;
	private final int ESCAPE_CHAR = 3;
	private final int CHAR = 4;
	private final int yy_state_dtrans[] = {
		0,
		43,
		49,
		53,
		57,
		60,
		63
	};
	private void yybegin (int state) {
		yy_lexical_state = state;
	}
	private int yy_advance ()
		throws java.io.IOException {
		int next_read;
		int i;
		int j;

		if (yy_buffer_index < yy_buffer_read) {
			return yy_buffer[yy_buffer_index++];
		}

		if (0 != yy_buffer_start) {
			i = yy_buffer_start;
			j = 0;
			while (i < yy_buffer_read) {
				yy_buffer[j] = yy_buffer[i];
				++i;
				++j;
			}
			yy_buffer_end = yy_buffer_end - yy_buffer_start;
			yy_buffer_start = 0;
			yy_buffer_read = j;
			yy_buffer_index = j;
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}

		while (yy_buffer_index >= yy_buffer_read) {
			if (yy_buffer_index >= yy_buffer.length) {
				yy_buffer = yy_double(yy_buffer);
			}
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}
		return yy_buffer[yy_buffer_index++];
	}
	private void yy_move_end () {
		if (yy_buffer_end > yy_buffer_start &&
		    '\n' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
		if (yy_buffer_end > yy_buffer_start &&
		    '\r' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
	}
	private boolean yy_last_was_cr=false;
	private void yy_mark_start () {
		int i;
		for (i = yy_buffer_start; i < yy_buffer_index; ++i) {
			if ('\n' == yy_buffer[i] && !yy_last_was_cr) {
				++yyline;
			}
			if ('\r' == yy_buffer[i]) {
				++yyline;
				yy_last_was_cr=true;
			} else yy_last_was_cr=false;
		}
		yychar = yychar
			+ yy_buffer_index - yy_buffer_start;
		yy_buffer_start = yy_buffer_index;
	}
	private void yy_mark_end () {
		yy_buffer_end = yy_buffer_index;
	}
	private void yy_to_mark () {
		yy_buffer_index = yy_buffer_end;
		yy_at_bol = (yy_buffer_end > yy_buffer_start) &&
		            ('\r' == yy_buffer[yy_buffer_end-1] ||
		             '\n' == yy_buffer[yy_buffer_end-1] ||
		             2028/*LS*/ == yy_buffer[yy_buffer_end-1] ||
		             2029/*PS*/ == yy_buffer[yy_buffer_end-1]);
	}
	private java.lang.String yytext () {
		return (new java.lang.String(yy_buffer,
			yy_buffer_start,
			yy_buffer_end - yy_buffer_start));
	}
	private int yylength () {
		return yy_buffer_end - yy_buffer_start;
	}
	private char[] yy_double (char buf[]) {
		int i;
		char newbuf[];
		newbuf = new char[2*buf.length];
		for (i = 0; i < buf.length; ++i) {
			newbuf[i] = buf[i];
		}
		return newbuf;
	}
	private final int YY_E_INTERNAL = 0;
	private final int YY_E_MATCH = 1;
	private java.lang.String yy_error_string[] = {
		"Error: Internal error.\n",
		"Error: Unmatched input.\n"
	};
	private void yy_error (int code,boolean fatal) {
		java.lang.System.out.print(yy_error_string[code]);
		java.lang.System.out.flush();
		if (fatal) {
			throw new Error("Fatal Error.\n");
		}
	}
	private int[][] unpackFromString(int size1, int size2, String st) {
		int colonIndex = -1;
		String lengthString;
		int sequenceLength = 0;
		int sequenceInteger = 0;

		int commaIndex;
		String workString;

		int res[][] = new int[size1][size2];
		for (int i= 0; i < size1; i++) {
			for (int j= 0; j < size2; j++) {
				if (sequenceLength != 0) {
					res[i][j] = sequenceInteger;
					sequenceLength--;
					continue;
				}
				commaIndex = st.indexOf(',');
				workString = (commaIndex==-1) ? st :
					st.substring(0, commaIndex);
				st = st.substring(commaIndex+1);
				colonIndex = workString.indexOf(':');
				if (colonIndex == -1) {
					res[i][j]=Integer.parseInt(workString);
					continue;
				}
				lengthString =
					workString.substring(colonIndex+1);
				sequenceLength=Integer.parseInt(lengthString);
				workString=workString.substring(0,colonIndex);
				sequenceInteger=Integer.parseInt(workString);
				res[i][j] = sequenceInteger;
				sequenceLength--;
			}
		}
		return res;
	}
	private int yy_acpt[] = {
		/* 0 */ YY_NOT_ACCEPT,
		/* 1 */ YY_NO_ANCHOR,
		/* 2 */ YY_NO_ANCHOR,
		/* 3 */ YY_NO_ANCHOR,
		/* 4 */ YY_NO_ANCHOR,
		/* 5 */ YY_NO_ANCHOR,
		/* 6 */ YY_NO_ANCHOR,
		/* 7 */ YY_NO_ANCHOR,
		/* 8 */ YY_NO_ANCHOR,
		/* 9 */ YY_NO_ANCHOR,
		/* 10 */ YY_NO_ANCHOR,
		/* 11 */ YY_NO_ANCHOR,
		/* 12 */ YY_NO_ANCHOR,
		/* 13 */ YY_NO_ANCHOR,
		/* 14 */ YY_NO_ANCHOR,
		/* 15 */ YY_NO_ANCHOR,
		/* 16 */ YY_NO_ANCHOR,
		/* 17 */ YY_NO_ANCHOR,
		/* 18 */ YY_NO_ANCHOR,
		/* 19 */ YY_NO_ANCHOR,
		/* 20 */ YY_NO_ANCHOR,
		/* 21 */ YY_NO_ANCHOR,
		/* 22 */ YY_NO_ANCHOR,
		/* 23 */ YY_NO_ANCHOR,
		/* 24 */ YY_NO_ANCHOR,
		/* 25 */ YY_NO_ANCHOR,
		/* 26 */ YY_NO_ANCHOR,
		/* 27 */ YY_NO_ANCHOR,
		/* 28 */ YY_NO_ANCHOR,
		/* 29 */ YY_NO_ANCHOR,
		/* 30 */ YY_NO_ANCHOR,
		/* 31 */ YY_NO_ANCHOR,
		/* 32 */ YY_NO_ANCHOR,
		/* 33 */ YY_NO_ANCHOR,
		/* 34 */ YY_NOT_ACCEPT,
		/* 35 */ YY_NO_ANCHOR,
		/* 36 */ YY_NO_ANCHOR,
		/* 37 */ YY_NO_ANCHOR,
		/* 38 */ YY_NO_ANCHOR,
		/* 39 */ YY_NO_ANCHOR,
		/* 40 */ YY_NO_ANCHOR,
		/* 41 */ YY_NO_ANCHOR,
		/* 42 */ YY_NO_ANCHOR,
		/* 43 */ YY_NOT_ACCEPT,
		/* 44 */ YY_NO_ANCHOR,
		/* 45 */ YY_NO_ANCHOR,
		/* 46 */ YY_NO_ANCHOR,
		/* 47 */ YY_NO_ANCHOR,
		/* 48 */ YY_NO_ANCHOR,
		/* 49 */ YY_NOT_ACCEPT,
		/* 50 */ YY_NO_ANCHOR,
		/* 51 */ YY_NO_ANCHOR,
		/* 52 */ YY_NO_ANCHOR,
		/* 53 */ YY_NOT_ACCEPT,
		/* 54 */ YY_NO_ANCHOR,
		/* 55 */ YY_NO_ANCHOR,
		/* 56 */ YY_NO_ANCHOR,
		/* 57 */ YY_NOT_ACCEPT,
		/* 58 */ YY_NO_ANCHOR,
		/* 59 */ YY_NO_ANCHOR,
		/* 60 */ YY_NOT_ACCEPT,
		/* 61 */ YY_NO_ANCHOR,
		/* 62 */ YY_NO_ANCHOR,
		/* 63 */ YY_NOT_ACCEPT,
		/* 64 */ YY_NO_ANCHOR,
		/* 65 */ YY_NO_ANCHOR,
		/* 66 */ YY_NO_ANCHOR,
		/* 67 */ YY_NO_ANCHOR,
		/* 68 */ YY_NO_ANCHOR,
		/* 69 */ YY_NO_ANCHOR,
		/* 70 */ YY_NO_ANCHOR,
		/* 71 */ YY_NO_ANCHOR,
		/* 72 */ YY_NO_ANCHOR,
		/* 73 */ YY_NO_ANCHOR,
		/* 74 */ YY_NO_ANCHOR,
		/* 75 */ YY_NO_ANCHOR,
		/* 76 */ YY_NO_ANCHOR,
		/* 77 */ YY_NO_ANCHOR,
		/* 78 */ YY_NO_ANCHOR,
		/* 79 */ YY_NO_ANCHOR,
		/* 80 */ YY_NO_ANCHOR,
		/* 81 */ YY_NO_ANCHOR,
		/* 82 */ YY_NO_ANCHOR,
		/* 83 */ YY_NO_ANCHOR,
		/* 84 */ YY_NO_ANCHOR,
		/* 85 */ YY_NO_ANCHOR,
		/* 86 */ YY_NO_ANCHOR,
		/* 87 */ YY_NO_ANCHOR,
		/* 88 */ YY_NO_ANCHOR,
		/* 89 */ YY_NO_ANCHOR,
		/* 90 */ YY_NO_ANCHOR,
		/* 91 */ YY_NO_ANCHOR,
		/* 92 */ YY_NO_ANCHOR,
		/* 93 */ YY_NO_ANCHOR,
		/* 94 */ YY_NO_ANCHOR,
		/* 95 */ YY_NO_ANCHOR,
		/* 96 */ YY_NO_ANCHOR,
		/* 97 */ YY_NO_ANCHOR,
		/* 98 */ YY_NO_ANCHOR,
		/* 99 */ YY_NO_ANCHOR,
		/* 100 */ YY_NO_ANCHOR,
		/* 101 */ YY_NO_ANCHOR,
		/* 102 */ YY_NO_ANCHOR,
		/* 103 */ YY_NO_ANCHOR,
		/* 104 */ YY_NO_ANCHOR,
		/* 105 */ YY_NO_ANCHOR,
		/* 106 */ YY_NO_ANCHOR,
		/* 107 */ YY_NO_ANCHOR,
		/* 108 */ YY_NO_ANCHOR,
		/* 109 */ YY_NO_ANCHOR,
		/* 110 */ YY_NO_ANCHOR,
		/* 111 */ YY_NO_ANCHOR,
		/* 112 */ YY_NO_ANCHOR,
		/* 113 */ YY_NO_ANCHOR,
		/* 114 */ YY_NO_ANCHOR,
		/* 115 */ YY_NO_ANCHOR,
		/* 116 */ YY_NO_ANCHOR,
		/* 117 */ YY_NO_ANCHOR,
		/* 118 */ YY_NO_ANCHOR,
		/* 119 */ YY_NO_ANCHOR,
		/* 120 */ YY_NO_ANCHOR,
		/* 121 */ YY_NO_ANCHOR,
		/* 122 */ YY_NO_ANCHOR,
		/* 123 */ YY_NO_ANCHOR,
		/* 124 */ YY_NO_ANCHOR,
		/* 125 */ YY_NO_ANCHOR,
		/* 126 */ YY_NO_ANCHOR,
		/* 127 */ YY_NO_ANCHOR,
		/* 128 */ YY_NO_ANCHOR,
		/* 129 */ YY_NO_ANCHOR,
		/* 130 */ YY_NO_ANCHOR,
		/* 131 */ YY_NO_ANCHOR,
		/* 132 */ YY_NO_ANCHOR,
		/* 133 */ YY_NO_ANCHOR,
		/* 134 */ YY_NO_ANCHOR,
		/* 135 */ YY_NO_ANCHOR,
		/* 136 */ YY_NO_ANCHOR,
		/* 137 */ YY_NO_ANCHOR,
		/* 138 */ YY_NO_ANCHOR,
		/* 139 */ YY_NO_ANCHOR,
		/* 140 */ YY_NO_ANCHOR,
		/* 141 */ YY_NO_ANCHOR,
		/* 142 */ YY_NO_ANCHOR,
		/* 143 */ YY_NO_ANCHOR,
		/* 144 */ YY_NO_ANCHOR,
		/* 145 */ YY_NO_ANCHOR,
		/* 146 */ YY_NO_ANCHOR,
		/* 147 */ YY_NO_ANCHOR,
		/* 148 */ YY_NO_ANCHOR,
		/* 149 */ YY_NO_ANCHOR,
		/* 150 */ YY_NO_ANCHOR,
		/* 151 */ YY_NO_ANCHOR,
		/* 152 */ YY_NO_ANCHOR,
		/* 153 */ YY_NOT_ACCEPT,
		/* 154 */ YY_NO_ANCHOR,
		/* 155 */ YY_NO_ANCHOR,
		/* 156 */ YY_NO_ANCHOR,
		/* 157 */ YY_NO_ANCHOR,
		/* 158 */ YY_NO_ANCHOR,
		/* 159 */ YY_NO_ANCHOR,
		/* 160 */ YY_NO_ANCHOR,
		/* 161 */ YY_NO_ANCHOR,
		/* 162 */ YY_NO_ANCHOR,
		/* 163 */ YY_NO_ANCHOR,
		/* 164 */ YY_NO_ANCHOR,
		/* 165 */ YY_NO_ANCHOR,
		/* 166 */ YY_NO_ANCHOR,
		/* 167 */ YY_NO_ANCHOR,
		/* 168 */ YY_NO_ANCHOR,
		/* 169 */ YY_NO_ANCHOR,
		/* 170 */ YY_NO_ANCHOR,
		/* 171 */ YY_NO_ANCHOR,
		/* 172 */ YY_NO_ANCHOR,
		/* 173 */ YY_NO_ANCHOR,
		/* 174 */ YY_NO_ANCHOR,
		/* 175 */ YY_NO_ANCHOR,
		/* 176 */ YY_NO_ANCHOR,
		/* 177 */ YY_NO_ANCHOR,
		/* 178 */ YY_NO_ANCHOR,
		/* 179 */ YY_NO_ANCHOR,
		/* 180 */ YY_NO_ANCHOR,
		/* 181 */ YY_NO_ANCHOR,
		/* 182 */ YY_NO_ANCHOR,
		/* 183 */ YY_NO_ANCHOR,
		/* 184 */ YY_NO_ANCHOR,
		/* 185 */ YY_NO_ANCHOR,
		/* 186 */ YY_NO_ANCHOR,
		/* 187 */ YY_NO_ANCHOR,
		/* 188 */ YY_NO_ANCHOR,
		/* 189 */ YY_NO_ANCHOR,
		/* 190 */ YY_NO_ANCHOR,
		/* 191 */ YY_NO_ANCHOR,
		/* 192 */ YY_NO_ANCHOR,
		/* 193 */ YY_NO_ANCHOR,
		/* 194 */ YY_NO_ANCHOR,
		/* 195 */ YY_NO_ANCHOR,
		/* 196 */ YY_NO_ANCHOR,
		/* 197 */ YY_NO_ANCHOR,
		/* 198 */ YY_NO_ANCHOR,
		/* 199 */ YY_NO_ANCHOR,
		/* 200 */ YY_NO_ANCHOR,
		/* 201 */ YY_NO_ANCHOR,
		/* 202 */ YY_NO_ANCHOR,
		/* 203 */ YY_NO_ANCHOR,
		/* 204 */ YY_NO_ANCHOR,
		/* 205 */ YY_NO_ANCHOR,
		/* 206 */ YY_NO_ANCHOR,
		/* 207 */ YY_NO_ANCHOR,
		/* 208 */ YY_NO_ANCHOR,
		/* 209 */ YY_NO_ANCHOR,
		/* 210 */ YY_NO_ANCHOR,
		/* 211 */ YY_NO_ANCHOR,
		/* 212 */ YY_NO_ANCHOR,
		/* 213 */ YY_NO_ANCHOR,
		/* 214 */ YY_NO_ANCHOR,
		/* 215 */ YY_NO_ANCHOR,
		/* 216 */ YY_NO_ANCHOR,
		/* 217 */ YY_NO_ANCHOR,
		/* 218 */ YY_NO_ANCHOR,
		/* 219 */ YY_NO_ANCHOR,
		/* 220 */ YY_NO_ANCHOR
	};
	private int yy_cmap[] = unpackFromString(1,130,
"3:8,6:2,4,3,6,5,3:18,15,43,14,3:3,44,7,50:2,2,46,50,47,17,1,16:10,50:2,41,4" +
"2,41,50,3,39:4,18,39:13,38,39:7,48,8,49,40,39,3,19,11,21,28,25,12,30,27,23," +
"39,32,29,36,9,22,31,39,13,20,10,24,35,26,37,33,34,50,45,50,3:2,0:2")[0];

	private int yy_rmap[] = unpackFromString(1,221,
"0,1,2,1:2,3,4,5,1,6,1,7:2,8,1:2,9,1:17,10,11,12,13,14,1:2,15,16,17,1,18,19," +
"20,21,22,7,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,4" +
"4,45,46,47,48,49,50,51,52,53,54,55,56,57,58,24,59,60,61,62,63,64,65,66,67,6" +
"8,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,9" +
"3,94,95,96,97,98,99,100,101,38,102,103,104,105,106,107,108,109,110,111,112," +
"113,114,115,116,117,118,119,120,121,122,19,123,124,125,126,127,128,103,129," +
"130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148" +
",149,150,151,152,153,138,154,155,156,157,158,159,160,161,162,163,164,90,165" +
",166,167,168,169,170,171,9,172,173,174,175,176,177,178,179,180,181,182,183," +
"184,185")[0];

	private int yy_nxt[][] = unpackFromString(186,51,
"1,2,35,3,4:2,5,6,3,7,152,179,195,203,8,5,9,10,206,208,209,210,211,36,206,21" +
"2,213,206,45,214,215,216,206:3,217,206:2,218,206,44,50,11,12,54,58,61,64,38" +
",10:2,-1:52,13,14,-1:39,39,-1:14,5,-1:8,5,-1:43,15,-1:51,206:5,-1:2,206,-1," +
"206,219,206:5,51,206:14,-1:27,9,34,153,-1:74,44,-1:9,13:3,-1,13:46,-1:9,206" +
":5,-1:2,206,-1,206:22,-1:27,37,-1:76,39,-1:17,78,206:2,16,206,-1:2,206,-1,2" +
"06:18,159,206:3,-1:27,37,-1,153,-1:81,10,-1:10,206:5,-1:2,206,-1,206:6,164," +
"206:15,-1:12,33,-1:49,1,-1:59,206:5,-1:2,206,-1,206:4,41,206:2,80,206:14,-1" +
":27,46,-1:43,206:5,-1:2,206,-1,206:7,191,206:14,-1:15,48:2,-1:45,1,17:3,-1:" +
"2,17:8,18,19,17:35,-1:9,206:5,-1:2,206,-1,206:8,16,206:13,-1:20,206:5,-1:2," +
"206,-1,206:2,16,206:19,-1:11,1,20:3,-1:2,20,21,20,22,23,24,25,26,27,28,20:3" +
"5,-1:44,44,-1:15,206:5,-1:2,206,-1,206,204,206:4,86,206:8,16,206:6,-1:20,20" +
"6:5,-1:2,206,-1,206:11,135,206:10,-1:11,1,29:3,-1:2,29:45,-1:45,44,-1:14,20" +
"6:4,196,-1:2,206,-1,206:5,87,206:16,-1:11,1,30:3,-1:2,30,31,30:43,-1:42,39," +
"-1:3,40,-1:13,206:5,-1:2,206,-1,206:7,161,206:14,-1:11,1,32,42,32,48:2,32:4" +
"5,-1:42,39,-1:4,40,-1:12,206:5,-1:2,206,-1,206:4,156,206:17,-1:20,206,86,20" +
"6:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:11,183,206:10,-1:20,206:" +
"4,16,-1:2,206,-1,206:22,-1:20,185,206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2" +
",206,-1,206:2,88,206:19,-1:20,206:4,199,-1:2,206,-1,206,165,206:20,-1:20,20" +
"6:5,-1:2,206,-1,206:13,90,206:8,-1:20,206:5,-1:2,206,-1,206:5,187,206:16,-1" +
":20,206,186,206:3,-1:2,206,-1,206:2,86,206:19,-1:20,206:5,-1:2,206,-1,206,6" +
"8,206:20,-1:20,206:5,-1:2,206,-1,206,93,206:20,-1:20,206,16,206:3,-1:2,206," +
"-1,206:22,-1:20,206,47,206:3,-1:2,206,-1,206:2,201,206:19,-1:20,206:5,-1:2," +
"206,-1,206:6,95,206:15,-1:20,206:3,97,206,-1:2,206,-1,206:22,-1:20,206:5,-1" +
":2,206,-1,206:4,205,100,206:16,-1:20,206:5,-1:2,206,-1,206:3,101,206:18,-1:" +
"20,206:2,102,206:2,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:5,103,206" +
":5,167,206:10,-1:20,206:4,104,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,20" +
"6:7,16,206:14,-1:20,206,169,206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-" +
"1,206:7,91,206:14,-1:20,206:5,-1:2,206,-1,206:7,68,206:14,-1:20,206:4,77,-1" +
":2,206,-1,206:22,-1:20,206,190,206:3,-1:2,206,-1,206:2,77,206:19,-1:20,206:" +
"5,-1:2,206,-1,206:2,87,206:19,-1:20,206:5,-1:2,206,-1,206:4,91,206:6,114,20" +
"6:10,-1:20,206:5,-1:2,206,-1,206:18,16,206:3,-1:20,206:5,-1:2,206,-1,206:11" +
",86,206:10,-1:20,206:5,-1:2,206,-1,206,116,206:20,-1:20,206:5,-1:2,206,-1,2" +
"06:12,16,206:9,-1:20,206:5,-1:2,206,-1,206:4,16,206:17,-1:20,117,206:4,-1:2" +
",206,-1,206:17,118,206:4,-1:20,206:5,-1:2,206,-1,206:14,174,206:7,-1:20,206" +
":5,-1:2,206,-1,206:11,168,206:10,-1:20,206:5,-1:2,206,-1,206:10,16,206:11,-" +
"1:20,206:5,-1:2,206,-1,206:5,119,206:16,-1:20,206:5,-1:2,206,-1,206:17,86,2" +
"06:4,-1:20,206:5,-1:2,206,-1,206:2,121,206:19,-1:20,206:5,-1:2,206,-1,206:8" +
",52,206:13,-1:20,206:5,-1:2,206,-1,206:14,16,206:7,-1:20,206:5,-1:2,206,-1," +
"206:11,56,206:10,-1:20,206:4,122,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1" +
",206:3,193,206:18,-1:20,206:5,-1:2,206,-1,206:9,124,206:12,-1:20,206:5,-1:2" +
",206,-1,206:9,16,206:12,-1:20,206:5,-1:2,206,-1,206:7,126,206:14,-1:20,127," +
"206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:6,128,206:15,-1:20,206" +
",130,206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206,131,206:20,-1:20," +
"98,206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:7,95,206:14,-1:20,2" +
"06:5,-1:2,206,-1,206:5,134,206:16,-1:20,16,206:4,-1:2,206,-1,206:22,-1:20,2" +
"06:5,-1:2,206,-1,206:3,16,206:18,-1:20,206:4,137,-1:2,206,-1,206:22,-1:20,2" +
"06:3,139,206,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:18,177,206:3,-1" +
":20,206:5,-1:2,206,-1,206:10,87,206:11,-1:20,206:5,-1:2,206,-1,206:11,77,20" +
"6:10,-1:20,206:5,-1:2,206,-1,206:3,140,206:18,-1:20,206:5,-1:2,206,-1,206:1" +
"1,122,206:10,-1:20,206:5,-1:2,206,-1,206:12,86,206:9,-1:20,206:5,-1:2,206,-" +
"1,206:5,96,206:16,-1:20,206:5,-1:2,206,-1,206:7,141,206:14,-1:20,206:5,-1:2" +
",206,-1,206:15,16,206:6,-1:20,206:5,-1:2,206,-1,206:3,77,206:18,-1:20,206:5" +
",-1:2,206,-1,206:4,143,206:17,-1:20,206:5,-1:2,206,-1,206:6,86,206:15,-1:20" +
",206:5,-1:2,206,-1,206,144,206:20,-1:20,206,146,206:3,-1:2,206,-1,206:22,-1" +
":20,77,206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:13,16,206:8,-1:" +
"20,147,206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:3,86,206:18,-1:" +
"20,206:5,-1:2,206,-1,206:7,148,206:14,-1:20,206:5,-1:2,206,-1,206:7,103,206" +
":14,-1:20,206:5,-1:2,206,-1,206:5,150,206:16,-1:20,206:5,-1:2,206,-1,206:4," +
"151,206:17,-1:20,206,87,206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,20" +
"6:16,146,206:5,-1:20,206:3,16,206,-1:2,206,-1,206:22,-1:20,206:4,55,-1:2,20" +
"6,-1,206:9,59,206:12,-1:20,206:5,-1:2,206,-1,206:4,200,206:17,-1:20,206,162" +
",206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:11,188,206:10,-1:20,1" +
"63,206:4,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:2,89,206:19,-1:20,2" +
"06:5,-1:2,206,-1,206:13,94,206:8,-1:20,206:5,-1:2,206,-1,206,108,206:20,-1:" +
"20,206:5,-1:2,206,-1,206:6,110,206:15,-1:20,206:5,-1:2,206,-1,206:3,112,206" +
":18,-1:20,206:2,96,206:2,-1:2,206,-1,206:22,-1:20,206,168,206:3,-1:2,206,-1" +
",206:22,-1:20,206:5,-1:2,206,-1,206:7,115,206:14,-1:20,206:5,-1:2,206,-1,20" +
"6,173,206:20,-1:20,206:5,-1:2,206,-1,206:5,123,206:16,-1:20,206:4,202,-1:2," +
"206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:3,113,206:18,-1:20,206:5,-1:2,206" +
",-1,206:7,129,206:14,-1:20,138,206:4,-1:2,206,-1,206:22,-1:20,206,133,206:3" +
",-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206,132,206:20,-1:20,206:3,142," +
"206,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:3,145,206:18,-1:20,206:5" +
",-1:2,206,-1,206:7,178,206:14,-1:20,149,206:4,-1:2,206,-1,206:22,-1:20,206:" +
"4,62,-1:2,206,-1,206:4,65,206:10,66,206:6,-1:20,206:5,-1:2,206,-1,206:4,91," +
"206:17,-1:20,206,166,206:3,-1:2,206,-1,206:22,-1:20,92,206:4,-1:2,206,-1,20" +
"6:22,-1:20,206:5,-1:2,206,-1,206:2,86,206:19,-1:20,206:5,-1:2,206,-1,206:5," +
"105,206:16,-1:20,206:5,-1:2,206,-1,206,109,206:20,-1:20,206,170,206:3,-1:2," +
"206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:7,194,206:14,-1:20,206:5,-1:2,206" +
",-1,206,192,206:20,-1:20,206:5,-1:2,206,-1,206:5,172,206:16,-1:20,206:4,125" +
",-1:2,206,-1,206:22,-1:20,176,206:4,-1:2,206,-1,206:22,-1:20,206,175,206:3," +
"-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206,122,206:20,-1:20,206:5,-1:2," +
"206,-1,206,67,206:2,68,69,206:5,154,206:10,-1:20,206:5,-1:2,206,-1,206:4,10" +
"7,206:17,-1:20,206,99,206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:" +
"5,111,206:16,-1:20,206:5,-1:2,206,-1,206,77,206:20,-1:20,206,189,206:3,-1:2" +
",206,-1,206:22,-1:20,206:5,-1:2,206,-1,206,136,206:20,-1:20,206:5,-1:2,206," +
"-1,206:7,155,206:14,-1:20,106,206:4,-1:2,206,-1,206:22,-1:20,206,171,206:3," +
"-1:2,206,-1,206:22,-1:20,206,120,206:3,-1:2,206,-1,206:22,-1:20,206:2,70,20" +
"6:2,-1:2,206,-1,206:2,158,206:19,-1:20,206,71,206:3,-1:2,206,-1,206:6,72,20" +
"6,73,180,206:5,157,206:6,-1:20,206:5,-1:2,206,-1,206,74,206:2,182,206:4,75," +
"206,76,206:10,-1:20,206:5,-1:2,206,-1,206:6,77,206:15,-1:20,79,206:4,-1:2,2" +
"06,-1,206:11,183,206:7,181,206:2,-1:20,206:5,-1:2,206,-1,206:9,160,206:12,-" +
"1:20,206:5,-1:2,206,-1,206:4,198,206:17,-1:20,206:5,-1:2,206,-1,206:4,197,2" +
"06:17,-1:20,206:4,81,-1:2,206,-1,206,82,206:4,83,206:15,-1:20,206:5,-1:2,20" +
"6,-1,206:4,84,206:17,-1:20,206,85,206:3,-1:2,206,-1,206:15,220,206:6,-1:20," +
"206,184,206:3,-1:2,206,-1,206:22,-1:20,206:5,-1:2,206,-1,206:2,207,206:19,-" +
"1:11");

	public String next_token ()
		throws java.io.IOException {
		int yy_lookahead;
		int yy_anchor = YY_NO_ANCHOR;
		int yy_state = yy_state_dtrans[yy_lexical_state];
		int yy_next_state = YY_NO_STATE;
		int yy_last_accept_state = YY_NO_STATE;
		boolean yy_initial = true;
		int yy_this_accept;

		yy_mark_start();
		yy_this_accept = yy_acpt[yy_state];
		if (YY_NOT_ACCEPT != yy_this_accept) {
			yy_last_accept_state = yy_state;
			yy_mark_end();
		}
		while (true) {
			if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
			else yy_lookahead = yy_advance();
			yy_next_state = YY_F;
			yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
			if (YY_EOF == yy_lookahead && true == yy_initial) {

  return null;
			}
			if (YY_F != yy_next_state) {
				yy_state = yy_next_state;
				yy_initial = false;
				yy_this_accept = yy_acpt[yy_state];
				if (YY_NOT_ACCEPT != yy_this_accept) {
					yy_last_accept_state = yy_state;
					yy_mark_end();
				}
			}
			else {
				if (YY_NO_STATE == yy_last_accept_state) {
					throw (new Error("Lexical Error: Unmatched Input."));
				}
				else {
					yy_anchor = yy_acpt[yy_last_accept_state];
					if (0 != (YY_END & yy_anchor)) {
						yy_move_end();
					}
					yy_to_mark();
					switch (yy_last_accept_state) {
					case 1:
						
					case -2:
						break;
					case 2:
						{ return getSym(yytext());}
					case -3:
						break;
					case 3:
						{ }
					case -4:
						break;
					case 4:
						{ yychar = 0;}
					case -5:
						break;
					case 5:
						{ }
					case -6:
						break;
					case 6:
						{string.setLength(0);yybegin(CHAR);string.append(yytext());}
					case -7:
						break;
					case 7:
						{ return "ID\t" + yytext(); }
					case -8:
						break;
					case 8:
						{string.setLength(0);yybegin(STRING);}
					case -9:
						break;
					case 9:
						{ return "NM\t" + yytext(); }
					case -10:
						break;
					case 10:
						{ if(isValidBracket()) {return getSym(yytext());} else {printErrorMessage("Unmatched Bracket"); return null;}}
					case -11:
						break;
					case 11:
						{ return getSym(yytext());}
					case -12:
						break;
					case 12:
						{ return getSym(yytext());}
					case -13:
						break;
					case 13:
						{ }
					case -14:
						break;
					case 14:
						{yybegin(C_COMMENT);}
					case -15:
						break;
					case 15:
						{string.setLength(0);yybegin(ESCAPE_CHAR);nextState=END_CHAR;string.append(yytext());}
					case -16:
						break;
					case 16:
						{ return "KW\t" + yytext(); }
					case -17:
						break;
					case 17:
						{string.append(yytext());}
					case -18:
						break;
					case 18:
						{yybegin(YYINITIAL);printDebug(string.toString());return "ST\t" + string; }
					case -19:
						break;
					case 19:
						{yybegin(ESCAPE_CHAR); string.append(yytext()); nextState=STRING;}
					case -20:
						break;
					case 20:
						{printErrorMessage("Invalid Escape Character"); yybegin(nextState);return null;}
					case -21:
						break;
					case 21:
						{string.append(yytext());yybegin(nextState);}
					case -22:
						break;
					case 22:
						{string.append(yytext());yybegin(nextState);}
					case -23:
						break;
					case 23:
						{string.append(yytext());yybegin(nextState);}
					case -24:
						break;
					case 24:
						{string.append(yytext());yybegin(nextState);}
					case -25:
						break;
					case 25:
						{string.append(yytext());yybegin(nextState);}
					case -26:
						break;
					case 26:
						{string.append(yytext());yybegin(nextState);}
					case -27:
						break;
					case 27:
						{string.append(yytext());yybegin(nextState);}
					case -28:
						break;
					case 28:
						{string.append(yytext());yybegin(nextState);}
					case -29:
						break;
					case 29:
						{string.append(yytext());yybegin(END_CHAR);}
					case -30:
						break;
					case 30:
						{printErrorMessage("unclosed char literal " + string); return null;}
					case -31:
						break;
					case 31:
						{yybegin(YYINITIAL);string.append(yytext());return "CH\t" + string;}
					case -32:
						break;
					case 32:
						{}
					case -33:
						break;
					case 33:
						{yybegin(YYINITIAL);}
					case -34:
						break;
					case 35:
						{ return getSym(yytext());}
					case -35:
						break;
					case 36:
						{ return "ID\t" + yytext(); }
					case -36:
						break;
					case 37:
						{ return "NM\t" + yytext(); }
					case -37:
						break;
					case 38:
						{ if(isValidBracket()) {return getSym(yytext());} else {printErrorMessage("Unmatched Bracket"); return null;}}
					case -38:
						break;
					case 39:
						{ return getSym(yytext());}
					case -39:
						break;
					case 40:
						{ return getSym(yytext());}
					case -40:
						break;
					case 41:
						{ return "KW\t" + yytext(); }
					case -41:
						break;
					case 42:
						{}
					case -42:
						break;
					case 44:
						{ return getSym(yytext());}
					case -43:
						break;
					case 45:
						{ return "ID\t" + yytext(); }
					case -44:
						break;
					case 46:
						{ return "NM\t" + yytext(); }
					case -45:
						break;
					case 47:
						{ return "KW\t" + yytext(); }
					case -46:
						break;
					case 48:
						{}
					case -47:
						break;
					case 50:
						{ return getSym(yytext());}
					case -48:
						break;
					case 51:
						{ return "ID\t" + yytext(); }
					case -49:
						break;
					case 52:
						{ return "KW\t" + yytext(); }
					case -50:
						break;
					case 54:
						{ return getSym(yytext());}
					case -51:
						break;
					case 55:
						{ return "ID\t" + yytext(); }
					case -52:
						break;
					case 56:
						{ return "KW\t" + yytext(); }
					case -53:
						break;
					case 58:
						{ return getSym(yytext());}
					case -54:
						break;
					case 59:
						{ return "ID\t" + yytext(); }
					case -55:
						break;
					case 61:
						{ return getSym(yytext());}
					case -56:
						break;
					case 62:
						{ return "ID\t" + yytext(); }
					case -57:
						break;
					case 64:
						{ return getSym(yytext());}
					case -58:
						break;
					case 65:
						{ return "ID\t" + yytext(); }
					case -59:
						break;
					case 66:
						{ return "ID\t" + yytext(); }
					case -60:
						break;
					case 67:
						{ return "ID\t" + yytext(); }
					case -61:
						break;
					case 68:
						{ return "ID\t" + yytext(); }
					case -62:
						break;
					case 69:
						{ return "ID\t" + yytext(); }
					case -63:
						break;
					case 70:
						{ return "ID\t" + yytext(); }
					case -64:
						break;
					case 71:
						{ return "ID\t" + yytext(); }
					case -65:
						break;
					case 72:
						{ return "ID\t" + yytext(); }
					case -66:
						break;
					case 73:
						{ return "ID\t" + yytext(); }
					case -67:
						break;
					case 74:
						{ return "ID\t" + yytext(); }
					case -68:
						break;
					case 75:
						{ return "ID\t" + yytext(); }
					case -69:
						break;
					case 76:
						{ return "ID\t" + yytext(); }
					case -70:
						break;
					case 77:
						{ return "ID\t" + yytext(); }
					case -71:
						break;
					case 78:
						{ return "ID\t" + yytext(); }
					case -72:
						break;
					case 79:
						{ return "ID\t" + yytext(); }
					case -73:
						break;
					case 80:
						{ return "ID\t" + yytext(); }
					case -74:
						break;
					case 81:
						{ return "ID\t" + yytext(); }
					case -75:
						break;
					case 82:
						{ return "ID\t" + yytext(); }
					case -76:
						break;
					case 83:
						{ return "ID\t" + yytext(); }
					case -77:
						break;
					case 84:
						{ return "ID\t" + yytext(); }
					case -78:
						break;
					case 85:
						{ return "ID\t" + yytext(); }
					case -79:
						break;
					case 86:
						{ return "ID\t" + yytext(); }
					case -80:
						break;
					case 87:
						{ return "ID\t" + yytext(); }
					case -81:
						break;
					case 88:
						{ return "ID\t" + yytext(); }
					case -82:
						break;
					case 89:
						{ return "ID\t" + yytext(); }
					case -83:
						break;
					case 90:
						{ return "ID\t" + yytext(); }
					case -84:
						break;
					case 91:
						{ return "ID\t" + yytext(); }
					case -85:
						break;
					case 92:
						{ return "ID\t" + yytext(); }
					case -86:
						break;
					case 93:
						{ return "ID\t" + yytext(); }
					case -87:
						break;
					case 94:
						{ return "ID\t" + yytext(); }
					case -88:
						break;
					case 95:
						{ return "ID\t" + yytext(); }
					case -89:
						break;
					case 96:
						{ return "ID\t" + yytext(); }
					case -90:
						break;
					case 97:
						{ return "ID\t" + yytext(); }
					case -91:
						break;
					case 98:
						{ return "ID\t" + yytext(); }
					case -92:
						break;
					case 99:
						{ return "ID\t" + yytext(); }
					case -93:
						break;
					case 100:
						{ return "ID\t" + yytext(); }
					case -94:
						break;
					case 101:
						{ return "ID\t" + yytext(); }
					case -95:
						break;
					case 102:
						{ return "ID\t" + yytext(); }
					case -96:
						break;
					case 103:
						{ return "ID\t" + yytext(); }
					case -97:
						break;
					case 104:
						{ return "ID\t" + yytext(); }
					case -98:
						break;
					case 105:
						{ return "ID\t" + yytext(); }
					case -99:
						break;
					case 106:
						{ return "ID\t" + yytext(); }
					case -100:
						break;
					case 107:
						{ return "ID\t" + yytext(); }
					case -101:
						break;
					case 108:
						{ return "ID\t" + yytext(); }
					case -102:
						break;
					case 109:
						{ return "ID\t" + yytext(); }
					case -103:
						break;
					case 110:
						{ return "ID\t" + yytext(); }
					case -104:
						break;
					case 111:
						{ return "ID\t" + yytext(); }
					case -105:
						break;
					case 112:
						{ return "ID\t" + yytext(); }
					case -106:
						break;
					case 113:
						{ return "ID\t" + yytext(); }
					case -107:
						break;
					case 114:
						{ return "ID\t" + yytext(); }
					case -108:
						break;
					case 115:
						{ return "ID\t" + yytext(); }
					case -109:
						break;
					case 116:
						{ return "ID\t" + yytext(); }
					case -110:
						break;
					case 117:
						{ return "ID\t" + yytext(); }
					case -111:
						break;
					case 118:
						{ return "ID\t" + yytext(); }
					case -112:
						break;
					case 119:
						{ return "ID\t" + yytext(); }
					case -113:
						break;
					case 120:
						{ return "ID\t" + yytext(); }
					case -114:
						break;
					case 121:
						{ return "ID\t" + yytext(); }
					case -115:
						break;
					case 122:
						{ return "ID\t" + yytext(); }
					case -116:
						break;
					case 123:
						{ return "ID\t" + yytext(); }
					case -117:
						break;
					case 124:
						{ return "ID\t" + yytext(); }
					case -118:
						break;
					case 125:
						{ return "ID\t" + yytext(); }
					case -119:
						break;
					case 126:
						{ return "ID\t" + yytext(); }
					case -120:
						break;
					case 127:
						{ return "ID\t" + yytext(); }
					case -121:
						break;
					case 128:
						{ return "ID\t" + yytext(); }
					case -122:
						break;
					case 129:
						{ return "ID\t" + yytext(); }
					case -123:
						break;
					case 130:
						{ return "ID\t" + yytext(); }
					case -124:
						break;
					case 131:
						{ return "ID\t" + yytext(); }
					case -125:
						break;
					case 132:
						{ return "ID\t" + yytext(); }
					case -126:
						break;
					case 133:
						{ return "ID\t" + yytext(); }
					case -127:
						break;
					case 134:
						{ return "ID\t" + yytext(); }
					case -128:
						break;
					case 135:
						{ return "ID\t" + yytext(); }
					case -129:
						break;
					case 136:
						{ return "ID\t" + yytext(); }
					case -130:
						break;
					case 137:
						{ return "ID\t" + yytext(); }
					case -131:
						break;
					case 138:
						{ return "ID\t" + yytext(); }
					case -132:
						break;
					case 139:
						{ return "ID\t" + yytext(); }
					case -133:
						break;
					case 140:
						{ return "ID\t" + yytext(); }
					case -134:
						break;
					case 141:
						{ return "ID\t" + yytext(); }
					case -135:
						break;
					case 142:
						{ return "ID\t" + yytext(); }
					case -136:
						break;
					case 143:
						{ return "ID\t" + yytext(); }
					case -137:
						break;
					case 144:
						{ return "ID\t" + yytext(); }
					case -138:
						break;
					case 145:
						{ return "ID\t" + yytext(); }
					case -139:
						break;
					case 146:
						{ return "ID\t" + yytext(); }
					case -140:
						break;
					case 147:
						{ return "ID\t" + yytext(); }
					case -141:
						break;
					case 148:
						{ return "ID\t" + yytext(); }
					case -142:
						break;
					case 149:
						{ return "ID\t" + yytext(); }
					case -143:
						break;
					case 150:
						{ return "ID\t" + yytext(); }
					case -144:
						break;
					case 151:
						{ return "ID\t" + yytext(); }
					case -145:
						break;
					case 152:
						{ return "ID\t" + yytext(); }
					case -146:
						break;
					case 154:
						{ return "ID\t" + yytext(); }
					case -147:
						break;
					case 155:
						{ return "ID\t" + yytext(); }
					case -148:
						break;
					case 156:
						{ return "ID\t" + yytext(); }
					case -149:
						break;
					case 157:
						{ return "ID\t" + yytext(); }
					case -150:
						break;
					case 158:
						{ return "ID\t" + yytext(); }
					case -151:
						break;
					case 159:
						{ return "ID\t" + yytext(); }
					case -152:
						break;
					case 160:
						{ return "ID\t" + yytext(); }
					case -153:
						break;
					case 161:
						{ return "ID\t" + yytext(); }
					case -154:
						break;
					case 162:
						{ return "ID\t" + yytext(); }
					case -155:
						break;
					case 163:
						{ return "ID\t" + yytext(); }
					case -156:
						break;
					case 164:
						{ return "ID\t" + yytext(); }
					case -157:
						break;
					case 165:
						{ return "ID\t" + yytext(); }
					case -158:
						break;
					case 166:
						{ return "ID\t" + yytext(); }
					case -159:
						break;
					case 167:
						{ return "ID\t" + yytext(); }
					case -160:
						break;
					case 168:
						{ return "ID\t" + yytext(); }
					case -161:
						break;
					case 169:
						{ return "ID\t" + yytext(); }
					case -162:
						break;
					case 170:
						{ return "ID\t" + yytext(); }
					case -163:
						break;
					case 171:
						{ return "ID\t" + yytext(); }
					case -164:
						break;
					case 172:
						{ return "ID\t" + yytext(); }
					case -165:
						break;
					case 173:
						{ return "ID\t" + yytext(); }
					case -166:
						break;
					case 174:
						{ return "ID\t" + yytext(); }
					case -167:
						break;
					case 175:
						{ return "ID\t" + yytext(); }
					case -168:
						break;
					case 176:
						{ return "ID\t" + yytext(); }
					case -169:
						break;
					case 177:
						{ return "ID\t" + yytext(); }
					case -170:
						break;
					case 178:
						{ return "ID\t" + yytext(); }
					case -171:
						break;
					case 179:
						{ return "ID\t" + yytext(); }
					case -172:
						break;
					case 180:
						{ return "ID\t" + yytext(); }
					case -173:
						break;
					case 181:
						{ return "ID\t" + yytext(); }
					case -174:
						break;
					case 182:
						{ return "ID\t" + yytext(); }
					case -175:
						break;
					case 183:
						{ return "ID\t" + yytext(); }
					case -176:
						break;
					case 184:
						{ return "ID\t" + yytext(); }
					case -177:
						break;
					case 185:
						{ return "ID\t" + yytext(); }
					case -178:
						break;
					case 186:
						{ return "ID\t" + yytext(); }
					case -179:
						break;
					case 187:
						{ return "ID\t" + yytext(); }
					case -180:
						break;
					case 188:
						{ return "ID\t" + yytext(); }
					case -181:
						break;
					case 189:
						{ return "ID\t" + yytext(); }
					case -182:
						break;
					case 190:
						{ return "ID\t" + yytext(); }
					case -183:
						break;
					case 191:
						{ return "ID\t" + yytext(); }
					case -184:
						break;
					case 192:
						{ return "ID\t" + yytext(); }
					case -185:
						break;
					case 193:
						{ return "ID\t" + yytext(); }
					case -186:
						break;
					case 194:
						{ return "ID\t" + yytext(); }
					case -187:
						break;
					case 195:
						{ return "ID\t" + yytext(); }
					case -188:
						break;
					case 196:
						{ return "ID\t" + yytext(); }
					case -189:
						break;
					case 197:
						{ return "ID\t" + yytext(); }
					case -190:
						break;
					case 198:
						{ return "ID\t" + yytext(); }
					case -191:
						break;
					case 199:
						{ return "ID\t" + yytext(); }
					case -192:
						break;
					case 200:
						{ return "ID\t" + yytext(); }
					case -193:
						break;
					case 201:
						{ return "ID\t" + yytext(); }
					case -194:
						break;
					case 202:
						{ return "ID\t" + yytext(); }
					case -195:
						break;
					case 203:
						{ return "ID\t" + yytext(); }
					case -196:
						break;
					case 204:
						{ return "ID\t" + yytext(); }
					case -197:
						break;
					case 205:
						{ return "ID\t" + yytext(); }
					case -198:
						break;
					case 206:
						{ return "ID\t" + yytext(); }
					case -199:
						break;
					case 207:
						{ return "ID\t" + yytext(); }
					case -200:
						break;
					case 208:
						{ return "ID\t" + yytext(); }
					case -201:
						break;
					case 209:
						{ return "ID\t" + yytext(); }
					case -202:
						break;
					case 210:
						{ return "ID\t" + yytext(); }
					case -203:
						break;
					case 211:
						{ return "ID\t" + yytext(); }
					case -204:
						break;
					case 212:
						{ return "ID\t" + yytext(); }
					case -205:
						break;
					case 213:
						{ return "ID\t" + yytext(); }
					case -206:
						break;
					case 214:
						{ return "ID\t" + yytext(); }
					case -207:
						break;
					case 215:
						{ return "ID\t" + yytext(); }
					case -208:
						break;
					case 216:
						{ return "ID\t" + yytext(); }
					case -209:
						break;
					case 217:
						{ return "ID\t" + yytext(); }
					case -210:
						break;
					case 218:
						{ return "ID\t" + yytext(); }
					case -211:
						break;
					case 219:
						{ return "ID\t" + yytext(); }
					case -212:
						break;
					case 220:
						{ return "ID\t" + yytext(); }
					case -213:
						break;
					default:
						yy_error(YY_E_INTERNAL,false);
					case -1:
					}
					yy_initial = true;
					yy_state = yy_state_dtrans[yy_lexical_state];
					yy_next_state = YY_NO_STATE;
					yy_last_accept_state = YY_NO_STATE;
					yy_mark_start();
					yy_this_accept = yy_acpt[yy_state];
					if (YY_NOT_ACCEPT != yy_this_accept) {
						yy_last_accept_state = yy_state;
						yy_mark_end();
					}
				}
			}
		}
	}
}
